home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Developer / CIncludesTool 1.0 / original version / source files / getDatabase.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-12-24  |  1.0 KB  |  57 lines  |  [TEXT/MPS ]

  1.  
  2. #include "CIncludesCode.h"
  3. #include <Memory.h>
  4. #include <Files.h>
  5. #include <Resources.h>
  6. #include <OSUtils.h>
  7.  
  8.  
  9. extern long                numFiles;
  10. extern Handle            database;
  11. extern dataHeaderType    dataHeader;
  12.  
  13.  
  14. Boolean readDatabase()
  15. {
  16.     short        fileid = 0;
  17.     long         filesize;
  18.     OSErr         error;
  19.     SysEnvRec    world;
  20.     
  21.     SysEnvirons( 1, &world );
  22.     error = FSOpen( dataFilename, world.sysVRefNum, &fileid );
  23.     if ( !error )
  24.     {
  25.         error = GetEOF( fileid, &filesize );
  26.         if ( !error )
  27.         {
  28.             SetHandleSize( database, filesize );
  29.             error = ( GetHandleSize( database ) != filesize );
  30.             if ( !error )
  31.                 error = FSRead (fileid, &filesize, *database);
  32.         }
  33.         (void) FSClose (fileid);
  34.     }
  35.  
  36.     return ( !error );
  37. }
  38.  
  39. Boolean    loadDatabase()
  40. {
  41.     Boolean okay;
  42.     
  43.     database = GetResource( databaseType, databaseID );
  44.     okay = ( !ResError() && database );
  45.     
  46.     if ( okay )
  47.         if ( (*((long*) *database) == 0x00000000) && (GetHandleSize( database ) == 4) )
  48.             okay = readDatabase();
  49.     
  50.     if ( okay )
  51.     {
  52.         dataHeader = *((dataHeaderType*) *database);
  53.         numFiles = dataHeader.numFiles;
  54.     }
  55.     return okay;
  56. }
  57.